// 向量库结果使用方式枚举
export enum VectorResultUsage {
    DIRECT = 'direct', // 直接使用结果
    PROCESS_PROMPT = 'process_prompt' // 处理提示词
  }
  
  // 引导消息明细
  export interface GuideMessage {
    id: string;
    content: string;
    order: number;
  }
  
  // 向量知识库明细
  export interface VectorKnowledge {
    id: string;
    name: string;
    description: string;
    vectorId: string;
  }
  
  // 引用函数明细
  export interface ReferenceFunction {
    id: string;
    name: string;
    description: string;
    functionId: string;
  }

  // 知识库使用方式枚举
export enum KnowledgeUsage {
  RETRIEVAL = 'retrieval', // 召回检索
  DIRECT = 'direct' // 直接输出
}

// 检索方式枚举
export enum RetrievalMethod {
  NORMAL = 'normal', // 常规检索
  METADATA = 'metadata' // 元数据增强
}

// 主表：智能体
export interface Agent {
  id: string;
  name: string;// 智能体名称
  identifier: string;// 智能体标识（英文数字下划线）
  modelId: string;// 使用模型ID
  isStreaming: string; // 是否流式输出
  isStreamingBool: boolean;
  
  // 模型参数
  maxTokens?: number;
  temperature?: number;
  topP?: number;
  frequencyPenalty?: number;
  presencePenalty?: number;
  
  // 提示词设置
  backgroundPrompt: string; // 背景提示词
  promptTemplate: string;// 提示词模板
  
  // 知识库设置
  knowledgeUsage?: KnowledgeUsage;
  knowledgeBase?: string[];
  minSimilarity?: number;
  retrievalCount?: number;
  retrievalMethod?: RetrievalMethod;
  enableReranking?: boolean;
  rerankingModel?: string;
  
  // 其他设置
  showWelcomeGuide: string; // 是否显示欢迎引导消息
  showWelcomeGuideBool: boolean;// 是否显示欢迎引导消息
  fileUpload: boolean;// 是否允许文件上传
  
  // 明细表
  guideMessages: GuideMessage[];
  referenceFunctions: ReferenceFunction[];
}

// 创建/编辑智能体的表单值类型
export type AgentFormValues = Omit<Agent, 'id' | 'guideMessages' | 'referenceFunctions'> & {
  guideMessages?: GuideMessage[];
  referenceFunctions?: ReferenceFunction[];
};
  
// 模型选项
export interface ModelOption {
  value: string;
  title: string;
  color?: string;
}
